﻿# CMakeList.txt: 顶层 CMake 项目文件，在此处执行全局配置
# 并包含子项目。
#
cmake_minimum_required (VERSION 3.19)

# 如果支持，请为 MSVC 编译器启用热重载。
if (POLICY CMP0141)
  cmake_policy(SET CMP0141 NEW)
  set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()

project ("breaking_link")

# fmt 库的所有功能都通过头文件提供，而不需要单独的实现文件
add_compile_options(-DFMT_HEADER_ONLY=1)

# 项目根目录
set(SERVER_ROOT_DIR "${PROJECT_SOURCE_DIR}")

# 设置输出目录
set(SERVER_OUTPUT_DIR "")
if(WIN32)
	set(SERVER_OUTPUT_DIR "${SERVER_ROOT_DIR}/bin/win")

	# 添加编译选项以启用 UTF-8
	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")
else()
	set(SERVER_OUTPUT_DIR "${SERVER_ROOT_DIR}/bin/linux")
endif()

# 设置可执行文件的输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY  ${SERVER_OUTPUT_DIR})
# 设置库文件的输出目录
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY  ${SERVER_OUTPUT_DIR})
# 设置归档文件的输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY  ${SERVER_OUTPUT_DIR})

# 包含子项目。
add_subdirectory ("src/breaking")
add_subdirectory ("src/test")
